﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ExerciceV1_1
{
    class Program
    {

        //Helper
        static int ReadInt()
        {
            do
            {
                string str = Console.ReadLine();
                int v = 0;
                if (int.TryParse(str, out v) == true)
                    return v;
                else
                {
                    Console.WriteLine("Erreur Valeur non numeric");
                }
            } while (true);
        }

        //Variables pour dossier 2

        static List<Bus>  listBus = new List<Bus>();
        static List<Voyage> listVoyage = new List<Voyage>();
        static List<Chauffeur> listChauffeur = new List<Chauffeur>();


        #region Dossier 1
        static void Dossier1()
        { 
        
            Console.WriteLine("Exercice 1, dossier 1");

            int S = 25;
            for (int i = 0; i < 30; i++)
            {
                S += 11;
            }
            Console.WriteLine("Reponse du Exercice 1, Dossier1 : S = " + S.ToString());
        
        }

        static void Dossier1Ex()
        {

            
            Console.WriteLine("Entrer la taille du tableau");
            int taille = ReadInt();
            int[] T = new int[taille];
            for (int i = 0; i < taille; i++)
            {
                Console.WriteLine("Entrer la valeur de l'indice " + i.ToString());
                T[i] = ReadInt();
            }
            Console.WriteLine("Les valeur du tableau sont:");
            for (int i = 0; i < taille; i++)
                Console.WriteLine("T[" + i + "] = " + T[i]);

            int valeur = 0;
            bool drapeau = false;

            for (int i = 0; i < taille && !drapeau; i++)
            {
                valeur = T[i];
                drapeau = true;
                for(int j = 0; j < taille; j++)
                {
                    if (valeur!= 0 && T[j] % valeur == 0)
                        drapeau = drapeau && true;
                    else
                        drapeau = drapeau && false;
                }
            }

            if (drapeau)
                Console.WriteLine("il y une solution valuer est: " + valeur);
            else
                Console.WriteLine("Pas de solution");

            Console.WriteLine("Appuyer sur une touche pour Aller au dossier 2");
            Console.Read();
        
        }

#endregion


        #region Dossier 2

        static Chauffeur rechercherChauffeur(string cin)
        { 
            foreach(Chauffeur c in listChauffeur)
            {
                if (c.CIN == cin)
                    return c;
            }
            return null;  
        }

        static Bus rechercherBus(string imm)
        {
            foreach (Bus c in listBus)
            {
                if (c.Immatrucalution == imm)
                    return c;
            }
            return null;
        }

        static int rechercherVoyage(int n)
        {

            foreach (Voyage v in listVoyage)
            {
                if (v.Numero == n)
                    return listVoyage.IndexOf(v);
            }
            
            return -1;
        }



        #endregion


        static void Menu()
        {

            string choix = "";
            do
            {
                Console.Clear();
                Console.WriteLine("Menu: ");
                Console.WriteLine("\t1 - Ajouter bus.");
                Console.WriteLine("\t2 - Ajouter voyage.");
                Console.WriteLine("\t3 - Lister tout les voyages.");
                Console.WriteLine("\t4 - Lister les voyages entre deux date.");
                Console.WriteLine("\t5 - Afichher le nomber des voyageurs de l annee en cours");
                Console.WriteLine("\t6 - Quitter.");
                choix = Console.ReadLine();

                switch (choix)
                { 
                    

                    case "6":
                        Console.WriteLine("Fin d'application");
                        break;

                }


            } while (choix != "6");

            
        
        }


        static void Main(string[] args)
        {
            Dossier1();
            Dossier1Ex();

            listChauffeur.Add(new Chauffeur("Ahmed","Ahmed","E000001"));
            listChauffeur.Add(new Chauffeur("Driss", "Driss", "E000002"));
            listChauffeur.Add(new Chauffeur("Hamza", "Hamza", "E000003"));

            listBus.Add(new Bus("AB002", "DAF", "Type1"));
            listBus.Add(new Bus("AB003", "VOLVO", "Type2"));
            listBus.Add(new Bus("AB004", "MAN", "Type3"));


            listVoyage.Add(new Voyage(listBus[0],listChauffeur[0],"Rabat","Sale",12.00,20));
            listVoyage.Add(new Voyage(listBus[2], listChauffeur[2], "Fes", "Meknes", 22.00, 40));


            Menu();


            Console.WriteLine("Appuyer sur une touche pour terminer");
            Console.Read();
        }
    }
}
